Журнал изменений Enterprise SDK | Tarantool
Документация на русском языке
поддерживается сообществом
Примечания к версиям Журнал изменений Enterprise SDK

Журнал изменений Enterprise SDK

Версия Tarantool Enterprise SDK состоит из двух частей:

<TARANTOOL_BASE_VERSION>-r<REVISION>

Например: 2.11.1-0-gc42d9735b-r589.

  • TARANTOOL_BASE_VERSION — версия Tarantool Enterprise.
  • REVISION — ревизия SDK. Помимо самого Tarantool, она включает утилиту tt, набор модулей с открытым и закрытым исходным кодом, а также примеры. Подробнее см. в разделе Комплектация.

В релизе обновлены ключевые зависимости платформы: Tarantool 2.11.9 — bugfix‑релиз ветки 2.11, ориентированный на повышение стабильности и предсказуемости работы. В релизе улучшены диагностика и реакция на ошибки WAL, устранены зависания и проблемы обслуживания WAL‑файлов в Core, а также внесён большой набор исправлений в LuaJIT и модуль Datetime. Дополнительно обновлены и доработаны ключевые компоненты экосистемы (crud, vshard, metrics, tt-ee, cartridge, http), включая улучшения безопасной работы при ребалансировке, отказоустойчивого чтения и изменения в TLS/mTLS‑настройках HTTP.

Это bugfix-релиз: исправлено 34 проблемы с версии 2.11.8 (r702).

  • Версия 2.x — предыдущая стабильная ветка; рекомендуется обновляться до 3.x.
  • Чтобы обновиться с Tarantool 2.x на 3.x см. процедуру обновления.

При обновлении SDK рекомендуется:

  • перед началом обновления убедиться, что все наборы реплик исправны и находятся в согласованном состоянии;
  • выполнять обновление последовательно, проверяя состояние кластера после обновления каждого компонента;
  • не запускать ребалансировку данных при прохождении через CRUD 1.7.0, пока обновление полностью не завершено.

Добавлено:

  • Новое встроенное системное событие box.wal_error, которое рассылается каждый раз, когда Tarantool не удаётся зафиксировать транзакцию в журнале предзаписи (WAL) (gh-9405).

Исправлено:

  • Проблема, из-за которой ошибки SSL некорректно регистрировались при разрыве соединения с клиентом.
  • Ошибка, из-за которой Tarantool мог зависать при использовании box.watch (gh-9632).
  • Ошибка, при которой файлы .xlog.inprogress не удалялись автоматически во время запуска сервера, если wal_dir задан и отличается от значения по умолчанию (gh-12081).
  • Ошибка, при которой локальный спейс нельзя было очистить (truncate), если спейс _truncate настроен как синхронный (synchronous) (gh-12585).

  • Если при записи в WAL возникает ER_WAL_IO, текущий лидер при первом же таком случае отказывается от своей роли.

Добавлено:

  • Поддержка ffi.abi("dualnum") для определения режима LuaJIT (dual-number: различение целых int64 и double).
  • Добавлены флаги misc.memprof.available и misc.sysprof.available для определения доступности соответствующего профайлера в текущей сборке. Подробнее про профайлеры см. в разделах LuaJIT memory profiler и LuaJIT platform profiler.

Исправлено:

  • Некорректная генерация IR_TBAR на aarch64.
  • Обработка переполнения стека при выходе из трассировки.
  • «Висячие» ссылки на CType.
  • Закрытие состояния VM после раннего OOM.
  • Генерация IR_MUL на x86/x64.
  • Некорректное объединение инструкций stp/ldp на aarch64.
  • Инвалидизация записи SCEV при возврате в более низкий фрейм.
  • Сборка на macOS 15/Clang 16.
  • Генерация IR_HREFK на aarch64.
  • Проверки стека в varargs-вызовах в сборке GC64.
  • Проверки стека в pcall()/xpcall() в сборке GC64.
  • Лимит аллокаций для сборки без JIT.
  • Обработка ошибок OOM при расширении стека в coroutine.resume() и lua_checkstack().
  • Запись (recording) циклов со значением шага -0 или управляющими значениями NaN.
  • Формирование сообщений об ошибках, когда ошибка возникает во время обработки ошибки.
  • «Висячая» ссылка для FFI callback.
  • BC_UNM для аргумента -0 в режиме dual-number.
  • Сужение (narrowing) унарного минуса в режиме dual-number.
  • Запись (recording) string.byte(), string.sub() и string.find().
  • Отсутствие преобразования типов для слотов BC_FORI в режиме dual-number.
  • Различные пограничные случаи в VM events.
  • Запись разрешения индекса конструктора в JIT-компиляторе.
  • Предупреждение UBSan в unpack().

Исправлено:

  • Падение из-за срабатывания assert при разборе неоднозначной даты: когда в тексте одновременно указаны день года (yday, который неявно задаёт месяц и день месяца) и календарный месяц (без дня месяца). Теперь такие случаи распознаются, и отображается ошибка.
  • Вычисления tzoffset для случаев вида new({timestamp=x, tz='Zone'}).
  • Неконсистентность между датами, создаваемыми new({tzoffset=x}), и d:set({tzoffset=x}), когда d.tz ~= '' идёт перед set().
  • Теперь datetime.new() и datetime_object:set() проверяют, что значение timestamp находится в допустимом диапазоне.
  • Проверка типа timestamp в set().

Для обратной совместимости добавлена опция compat.datetime_setfn_timestamp_type_check. Сейчас она по умолчанию выключена («старое» поведение), то есть проверка типа не выполняется. «Новое» поведение с проверкой типа планируется сделать значением по умолчанию в версии 4.x.

Примечание

Ниже приведены модули, в которых произошли изменения. Если модуль не указан в списке ниже, то обновления для него не выпускались.

Примечание

Начиная с CRUD 1.6.0 закрыта уязвимость, позволявшая выполнять операции, на которые у пользователя не было прав. Теперь CRUD строго соблюдает права доступа: пользователь может выполнять только те действия, которые разрешены его привилегиями. Если приложению требуется доступ к служебным спейсам, соответствующие права необходимо выдавать явно.

Подробнее Чтение и запись данных через модуль CRUD.

Подробности о безопасном режиме и совместимости при поэтапном (rolling) обновлении описаны в разделе Обновление модуля crud (см. Ограничение совместимости при обновлении и Порядок обновления).

Добавлено:

  • Метод crud.locate() для определения, где находится кортеж — в движке memtx или vinyl. Работает для спейсов, управляемых enterprise-модулем cooler.
  • В crud.len добавлена поддержка опций: mode, balance, prefer_replica, request_timeout.
  • safe mode — безопасный режим, предотвращающий запись данных в неверный набор реплик во время ребалансировки vshard.
  • Метрика tnt_crud_router_cache_clear_ts, помогающая корректно отключать безопасный режим в кластере.
  • Автоматическое переключение в безопасный режим при старте ребалансировки.
  • Возможность вручную вернуть быстрый режим (fast mode).
  • Метрика tnt_crud_storage_nil_bucket_id_compat_total для отслеживания операций, выполненных без bucket_ref (режим совместимости со старыми роутерами).

Исправлено:

  • Операции только для чтения (get, select, pairs, count, min, max) теперь выполняются через здоровые реплики, даже если все мастер-узлы в кластере недоступны.
  • Совместимость узлов хранилища с роутерами версии < 1.7.0: в get, update, delete корректно обрабатывается bucket_id = nil. В этом случае хранилище пропускает bucket referencing и пишет rate-limited предупреждение о сниженной безопасности ребаланса во время обновления без простоя (rolling upgrade).
  • Ошибка bucket_ref в методах crud.*_many теперь возвращается в виде массива.
  • Вызов bucket_unref вынесен из транзакции.
  • Предотвращено создание дублирующихся метрик при повторном вызове init.
  • Предотвращено создание дублирующихся триггеров на спейсе _crud_settings_local при повторном вызове init.
  • Взаимная блокировка в crud.schema() после ошибки перезагрузки схемы.
  • Удалена метрика tnt_crud_storage_safe_mode_enabled с роутера.
  • Убрана обёртка wrap_box_space_func_result для сокращения аллокаций и ускорения вызовов узла хранилища.
  • У* Оптимизирована пагинация в crud.select() и crud.pairs() с курсором after: для позиционирования курсора за O(1) на Tarantool 2.10+ используется нативная опция after.

Изменено:

  • При переключении в безопасный режим прекращена практика пометки/остановки iproto файберов в быстром режиме; корректность операций на узле хранилища проверяется через yield_checks в тестах.
  • Переключение в безопасный режим перенесено с триггера on_commit на on_replace.
  • Спейсы на движке vinyl всегда работают в безопасном режиме.

Версия 0.1.40 полностью совместима с предыдущими версиями vshard.

Добавлено:

  • Возможность отключать ограничитель частоты логирования (log rate limiter) через модуль consts.
  • Теперь вызывать vshard.router.info() и vshard.storage.info() можно, даже если роутер или хранилище отключены. Кроме того, функции возвращают новое булево поле: is_enabled.
  • Улучшено журналирование операций, связанных с ребалансировкой и восстановлением.

Исправлено:

  • Проблема, из‑за которой старый мастер-узел не мог обнаружить новый мастер-экземпляр в пределах набора реплик.
  • Утечка соединений: соединение не освобождалось сборщиком мусора после реконфигурации или перезагрузки.
  • Ограничение транзакций при работе с _bucket: ранее on_commit‑триггер на _bucket блокировал запись в другие спейсы в рамках той же транзакции (например, из on_replace‑триггеров). Теперь такие сценарии разрешены — в on_commit пропускаются изменения, относящиеся к «чужим» спейсам.
  • Проблема, из-за которой ошибка пользователя маскировалась ошибкой Transaction is active... при вызове персистентной функции, которая выбрасывает ошибку и не закрывает транзакцию на версиях Tarantool младше 3.0.0-beta1-18. Теперь vshard автоматически закрывает такие транзакции и возвращает исходную ошибку пользователя.
  • Проблема, из-за которой соединение с репликой не восстанавливалось автоматически, если оно было закрыто vshard или пользователем.

  • graphite: добавлена возможность отправлять метрики на несколько серверов.
  • Удаление реплики с помощью метода box.space._cluster:delete() не удаляет информацию об этой реплике из метрик. Информация исчезает только после перезапуска кластера.
  • Обратная совместимость с предыдущей версией плагина сохранена.
  • Изменения в поведении:
    • init теперь присваивает уникальное имя создаваемому файберу fiber на основе входных опций graphite server (если переданы).
    • Добавлен метод stop() для остановки всех файберов fibers, запущенных плагином.

Добавлено:

  • tt pack: добавлена поддержка вложенных файлов .packignore в корне окружения tt.
  • tt status: добавлена опция --format для вывода в форматах JSON и YAML (машиночитаемый вывод).

Изменено:

  • tt export: изменено поведение по умолчанию для составных полей (массивы и словари) — теперь они экспортируются в JSON. Для возврата прежнего поведения используйте --compound-value-format=ignore.

Исправлено:

  • Проверка целостности для приложения, использующего структуру каталогов Cartridge (одиночное приложение, у которого корневой каталог совпадает с корнем окружения).
  • Проблема с Tarantool 3.5+: экземпляр не останавливался при падении периодической проверки целостности.
  • Исправления, выявленные статическим анализатором Svacer и проверками на известные уязвимости (CVE).

Изменено:

  • По умолчанию дерево файлов на странице кода больше не разворачивается.
  • Обновлена зависимость vshard до версии 0.1.40.
  • Обновлена зависимость membership до версии 2.5.3.
  • Обновлена зависимость cartridge-metrics-role до версии 0.1.3.
  • Обновлена зависимость graphql до версии 0.3.1.
  • Обновлена зависимость http до версии 1.9.0.

Исправлено:

  • Переработан мониторинг синхронных спейсов с учетом фактического режима отказоустойчивости. Предупреждение о синхронных спейсах теперь записывается в журнал, когда отказоустойчивость (failover) настроена в режиме, который их не поддерживает (eventual, stateful без synchro_mode), а не безусловно при запуске экземпляра.
  • Добавлена функция is_sync_spaces_supported() в модуль cartridge.failover.
  • Синхронные спейсы теперь обнаруживаются динамически, что позволяет учитывать спейсы, добавленные во время работы.

Этот релиз добавляет новую опцию ssl_verify_client и изменяет поведение по умолчанию при заданном параметре ca_file. Также исправлено несколько ошибок.

Добавлено:

  • Новая опция ssl_verify_client.

Исправлено:

  • Сервер не пересоздается, если его адрес и порт не изменились.
  • Сервер не изменяется после обновления параметров при перезагрузке конфигурации.

Критические изменения:

Mutual TLS (взаимный TLS) с опцией ca_file включен по умолчанию.

Документация: Модуль http.

  • Bumped checks version to 3.4.0.
  • Bumped Cartridge version to 2.16.4.
  • Bumped vshard version to 0.1.37.

  • Bumped tarantool-2.11 series to 2.11.8.

  • Moved CI files from sdk-ci repository.

  • Bumped tt-ee version to v2.11.0.

  • Replaced Cartridge EE with Cartridge CE 2.16.3.
  • Added CRUD CE 1.6.1.
  • Added expirationd CE 1.7.0.
  • Added ddl CE 1.7.1.
  • Bumped metrics version to 1.5.0.
  • Added migrations CE 1.1.0.
  • Added vshard CE 0.1.36.
  • Moved to Community Edition modules.

  • Fixed glibc package URL to archived.

  • Added manual trigger job to run tests to generate certificate of compliance. Ready for Astra Linux.

  • Bumped Cartridge version to 2.16.2.
  • Bumped metrics version to 1.4.0.
  • Bumped http version to 1.8.0.
  • Bumped crud-ee version to 1.7.4.

  • Bumped tt-ee version to v2.10.1.

  • Bumped Cartridge version to 2.16.0.

  • Bumped vshard-ee version to 0.1.34.

  • Bumped Cartridge version to 2.15.4.

  • Bumped tt-ee version to v2.10.0.

  • Bumped migrations-ee version to 1.3.2.

  • Bumped tarantool-2.11 series to 2.11.7.

  • Bumped Kafka version to 1.6.10.

  • Bumped Cartridge version to 2.15.3.

  • Bumped vshard-ee version to 0.1.33.

  • Bumped tt-ee version to v2.9.1.

  • Bumped tt-ee version to v2.9.0.
  • Bumped Cartridge version to 2.15.2.
  • Bumped membership version to 2.5.2.

  • Bumped Cartridge version to 2.15.1.
  • Bumped tt-ee version to v2.8.1.
  • Bumped vshard-ee version to 0.1.32.

  • Bumped Cartridge version to 2.15.0.
  • Bumped membership version to 2.5.1.
  • Bumped expirationd-ee version to 1.8.0.

  • Bumped tarantool-2.11 series to 2.11.6.
  • Bumped tt-ee version to v2.8.0.
  • Bumped migrations-ee version to 1.3.1.

  • Bumped Cartridge version to 2.14.0.
  • Bumped membership version to 2.4.6.

  • Bumped vshard-ee version to 0.1.31.
  • Bumped tt-ee version to v2.7.0.

  • Bumped tt-ee version to v2.6.0.
  • Bumped Cartridge version to 2.13.0.
  • Bumped vshard version to 0.1.30.
  • Bumped http version to 1.7.0.

  • Bumped tarantool-2.11 series to 2.11.5.
  • Bumped tt-ee version to v2.5.2.
  • Updated Kafka to 1.6.9.
  • Bumped tt-ee version to v2.5.1.
  • Bumped tt-ee version to v2.5.0.

  • Moved cartridge-auth-extension to stable directory.
  • Bumped crud-ee version to 1.7.1.
  • Bumped migrations-ee version to 1.3.0.

  • Bumped Cartridge version to 2.12.4.
  • Bumped vshard version to 0.1.29.
  • Bumped http version to 1.6.0.

  • Bumped tarantool-2.11 series to 2.11.4.
  • Bumped Cartridge version to 2.12.3.

  • Bumped tt-ee version to v2.4.0.
  • Bumped queue version to 1.4.2.
  • Added Migration Guide to bundle.

  • Updated Oracle to 1.5.0 for x86_64.
  • Updated oci to 21.14 for x86_64.

  • Moved to Enterprise Edition modules.
  • Fixed Docker image due to CentOS 7 EOL.
  • Fixed CI/CD workflows running inside CentOS 7.

  • Bumped tt-ee version to v2.3.1.
  • Enabled tt bash completion.
  • Updated Kafka to 1.6.8.

  • Updated Docker image.
  • Updated CMake to 3.20.6.
  • Installed dependencies for building OpenSSL.
  • Fixed installation of Python 3.6.

  • Enabled back aarch64 jobs.
  • Temporary disabled aarch64 jobs.

  • Adjusted CI workflows for 1.x-2.x development branch.
  • Deleted tarantool-master submodule.

  • Updated CRUD to 1.5.1.
  • Updated sideservice to 0.2.1.
  • Updated httpgo to 0.2.2.
  • Updated httpgo-crud to 0.1.1.

  • Updated cartridge-cli to 2.12.12.
  • tt used instead of tarantoolctl for build/test routines.
  • Made Tarantool and bundle versions correct.
  • Bumped tarantool-2.11 to 2.11.3.

  • Updated Cartridge to 2.10.0.
  • Updated membership to 2.4.4.
  • Updated ddl to 1.7.0.
  • Updated graphqlapi to 0.0.11.

  • Updated expirationd to 1.6.0.
  • Updated sharded-queue to 1.0.0.
  • Dropped building MacOS bundles.
  • Updated cartridge-cli to 2.12.11.

  • Updated tt-ee to 2.2.1.
  • Updated CRUD to 1.5.0.
  • Updated membership to 2.4.3.
  • Updated Cartridge to 2.9.0.

  • Updated bundle tt-ee aarch64.
  • Updated tt-ee to 2.2.0.
  • Fixed running Tarantool tests on RED OS.

  • Updated CRUD to 1.4.3.
  • Updated luatest to 1.0.1.
  • Updated migrations to 0.7.0.
  • Updated tt-ee to 2.1.2.

  • Updated Cartridge to 2.8.5.
  • Updated CRUD to 1.4.2.
  • Added frontend-core 8.2.2.
  • Updated membership to 2.4.2.
  • Updated sideservice to 0.2.0.
  • Updated tt-ee to 2.1.1.
  • Updated vshard to 0.1.26.

  • Updated httpgo to 0.2.1.
  • Added httpgo-crud 0.1.0.
  • Updated tarantool-2.11 to 2.11.2.

  • Updated tarantool-master to 3.0.0-beta1.

  • Updated Cartridge to 2.8.4.
  • Updated CRUD to 1.4.1.
  • Updated ddl to 1.6.5.
  • Added httpgo 0.2.0.
  • Updated tt-ee to 2.0.0.

  • Updated cartridge-cli to 2.12.9.
  • Updated tt-ee to 1.3.1.

  • Updated tt-ee to 1.3.0.
  • Updated Cartridge to 2.8.3.
  • Updated cartridge-cli-extensions to 1.1.2.
  • Updated CRUD to 1.3.0.
  • Updated queue to 1.3.3.
  • Updated sharded-queue to 0.1.1.
  • Updated membership to 2.4.1.
  • Added tests for Astra Linux 1.7.

  • Updated tarantool-2.10 to 2.10.8.
  • Updated tarantool-master to 3.0.0-alpha3.
  • Updated migrations to 0.6.0.
  • Updated tt-ee to 1.2.0.
  • Updated space-explorer to 1.1.8.
  • Updated cartridge-metrics-role to 0.1.1.
  • Updated Cartridge to 2.8.2.
  • Updated expirationd to 1.5.0.
  • Added sideservice 0.1.0.

  • Updated cartridge-cli to 2.12.7.
  • Updated tarantool-2.11 to 2.11.1.

  • Added CRUD 1.2.0.
  • Added ddl 1.6.3.
  • Added sharded-queue 0.1.0.
  • Added ddl 1.6.4.
  • Updated tt-ee to 1.1.2.
  • Updated cartridge-cli to 2.12.6.

  • Updated tarantool-2.10 to 2.10.7.
  • Updated tarantool-2.11 to 2.11.0.
  • Added Kafka 1.6.6.
  • Added vshard 0.1.24.
  • Added metrics 1.0.0.
  • Added cartridge-metrics-role 0.1.0.
  • Added Cartridge 2.8.0.
  • Added http 1.5.0.

  • Added tt-ee and tt environment configuration.
  • Added CRUD 1.1.1.
  • Added avro-schema 3.1.1.
  • Added expirationd 1.4.0.
  • Added graphql 0.3.0.
  • Added graphqlapi 0.0.10.
  • Added metrics 0.17.0.
  • Added migrations 0.5.0.
  • Added Oracle 1.4.0.
  • Added Cartridge 2.7.9.
  • Added vshard 0.1.23.
  • Added Kafka 1.6.5.

  • Updated tarantool-2.10 to 2.10.6.

  • Updated tarantool-2.11 to 2.11.0-rc2.

  • Added the tarantool-2.11 submodule.

  • Updated tarantool-1.10 to 1.10.15.

  • Updated tarantool-master to 3.0.0-entrypoint.

  • Updated tarantool-2.10 to 2.10.5.

  • Updated tarantool-2.8 to apply 2 hotfixes.

  • Fixed non-interactive installation of the brew package.
  • Changed the owner of the /usr/local/bin directory.
  • Installed awscli@1 instead of awscli since it takes much less time.

  • Added the missing property 2.10 for scope CACHE in CMakeLists.txt.

  • Added expirationd 1.3.1.

  • Used runners with label regular for builds and the tagged release workflow.

  • Added http 1.4.0.
  • Added space-explorer 1.1.7.
  • Added checks 3.2.0.
  • Added metrics 0.16.0.
  • Added Cartridge 2.7.8.

  • Added the -DENABLE_LTO=ON flag for tarantool-ee@master branch to CMakeLists.txt.

  • Upgraded devtoolset from 8 to 9. It was required for upgrading ld from 2.30 to 2.31+ for LTO.

  • Updated tarantool’s master branch to a recent revision.

  • Fixed code style in the Linux and MacOS workflows.

  • Reliably installed packages in MacOS builds.

  • Refactored the way that GC64 builds are defined in the build workflow. There are no changes to the composition of resulting bundles.

  • Added alerting failures in builds on stable branches and integration testing to VK Teams chats.

  • Updated to fresh tarantool master (2.11.0-entrypoint-107-ga18449d)

  • Outdated workflow runs are now canceled to save CI time.

Release SDK by tags:

  • Run workflow in SDK docker container.
  • Uploaded SDK files for 1.10, 2.8, 2.10 versions to release folder.
  • Added consistency check for all versions.

  • On feature branches, SDK is now rebuilt only on relevant changes.

  • Updated Tarantool EE to 2.10.4.

  • Updated bundled OpenSSL to version 1.1.1q.

  • Removed support of Tarantool 2.7.
  • Started using tarantool/actions/prepare-checkout to make builds more stable.

  • Remove the local registry and setup using GitHub registry.
  • Sync rocks cache to S3 and back.
  • Setup using shared runners.
  • Refactor and format ci-linux.yml and ci-macos.yml.

  • Removed Kafka 1.5.0 due to a build issue with Tarantool 2.10.3 and higher.
  • Updated Kafka to version 1.6.2.

  • Updated tuple-keydef to version 0.0.3.

  • Enabled parallel build of rocks for MacOS in CI.

  • Updated Tarantool to 2.10.3.
  • Added a readable error for the case when the flight recoder fails to write data due to insufficient free space on the disk device. Previously, it was sending a SIGBUS error.
  • Fixed a crash in the flight recorder caused by non-thread-safe log recording from multiple threads.

  • Updated Tarantool to 2.10.2.
  • Increased resolution of stored entries in flight recorder.
  • Fixed a bug in the flight recorder that resulted in skipping log entries in case box.cfg.log_level is less than flightrec_log_level.

  • Updated Tarantool to 2.10.1.
  • Updated Cyrus SASL to version 2.1.28.
  • Updated OpenLDAP to version 2.5.13.
  • Updated LZ4 to version 1.9.3. Fixed CVE-2021-3520.
  • Fixed replication reconnect failure after disabling SSL encryption.
  • Fixed a crash that occurred while tyring to start an instance that has a compressed memtx space.
  • Fixed CVE-2022-29242 in GOST SSL engine.
  • Fixed a bug in the flight recorder reader implementation that resulted in a hang or error while trying to open an empty section.

  • Default audit log format was changed to CSV.

  • Implemented user-defined audit events. Now it’s possible to log custom messages to the audit log from Lua.
  • [Breaking change] Switched the default audit log format to CSV. The format can be switched back to JSON using the new box.cfg.audit_format configuration option.
  • Implemented the audit log filter. Now, it’s possible to enable logging only for a subset of all audit events using the new box.cfg.audit_filter configuration option.

  • Implement constraints and foreign keys. Now a user can create function constraints and foreign key relations (gh-6436).
  • Changed log level of some information messages from critical to info (gh-4675).
  • Added predefined system events: box.status, box.id, box.election and box.schema (gh-6260).
  • Introduced transaction isolation levels in Lua and IPROTO (gh-6930).

  • Disabled the deferred DELETE optimization in Vinyl to avoid possible performance degradation of secondary index reads. Now, to enable the optimization, one has to set the defer_deletes flag in space options (gh-4501).

  • Added support of console autocompletion for net.box objects stream and future (gh-6305).

  • Parse method to allow converting string literals in extended iso-8601
    or rfc3339 formats (gh-6731).
  • The range of supported years has been extended in all parsers to cover
    fully -5879610-06-22..5879611-07-11 (gh-6731).

  • Added bundling of GNU libunwind to support backtrace feature on AARCH64 architecture and distributives that don’t provide libunwind package.
  • Re-enabled backtrace feature for all RHEL distributions by default, except for AARCH64 architecture and ancient GCC versions, which lack compiler features required for backtrace (gh-4611).

  • Disabled audit log unless explicitly configured. Before this change, audit events were written to stderr if box.cfg.audit_log wasn’t set. Now, audit log is disabled in this case.
  • Disabled audit logging of replicated events. Now, replicated events (for example, user creation) are logged only on the origin, never on a replica.

  • Banned DDL operations in space on_replace triggers, since they could lead to a crash (gh-6920).
  • Fixed a bug due to which all fibers created with fiber_attr_setstacksize() leaked until the thread exit. Their stacks also leaked except when fiber_set_joinable(..., true) was used.
  • Fixed a crash in mvcc connected with secondary index conflict (gh-6452).
  • Fixed a bug which resulted in wrong space count (gh-6421).
  • Select in RO transaction now reads confirmed data, like a standalone (auotcommit) select does (gh-6452).

  • Fixed potential obsolete data write in synchronous replication due to race in accessing terms while disk write operation is in progress and not yet completed.
  • Fixed replicas failing to bootstrap when master is just re-started (gh-6966).

  • Fixed the behavior of tarantool console on SIGINT. Now Ctrl+C discards the current input and prints the new prompt (gh-2717).

  • Fixed assertion or segfault when MP_EXT received via net.box (gh-6766).
  • Now ROUND() properly support INTEGER and DECIMAL as the first argument (gh-6988).

  • Intervals received after datetime arithmetic operations may be improperly normalized if result was negative

    tarantool> date.now() - date.now()
    ---
    - -1.000026000 seconds
    ...
    

    I.e. 2 immediately called date.now() produce very close values, whose difference should be close to 0, not 1 second (gh-6882).

  • Changed the type of the error returned by net.box on timeout from ClientError to TimedOut (gh-6144).

  • Fixed some binary protocol encryption bugs.
Нашли ответ на свой вопрос?
Обратная связь